iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
1

今天開始跟大家介紹kernel method(核函數)。

在之前的方法中,訓練資料都是用來訓練一個 w ,接著我們用這個 w 來預測,也就是說訓練資料在訓練階段結束就不會再被用到了。所以很自然的,就有另一個角度的預測,是將訓練資料用在預測階段。這通常會是一個memory-base的方式,也就是所有資料我們都必須要存下來用以預測,而在這種方式中,通常需要一個計算兩個向量之間相似度的方式,這個方式常常就是我們的kernel function。

所以到底要怎麼用呢?其實許多線性模型可以轉換成用kernel function的表示。我們先定義一個kernel

接著我們老梗新用,再看一下以前regression的例子,這次我們要看他的對偶表示法

一樣流程,就令微分等於零那個,可以得到最好的 w 是

其中

接著我們把 w 帶回去第一個式子,可以得到

這就是他的對偶表示法

接著定義矩陣K,他的n列m行是

可以發現他就是一開始定義的kernel function組成的矩陣

接著把

的phi換成K,再解 a 可以得

我們就可以用這現在算出來的這個來預測新得到的x

其中

這樣做的好處是我們可以透過改變kernel function去改變我們模型的維度,甚至可以使用到無限維的特徵空間!為什麼可以這樣呢?可以想像,我定義的kernel是用來計算相似性,那我當然可以換另一個計算相似性的方式。

例如常常被使用的Gaussian kernel

這個就是可以將特徵向量轉為無限維的kernel

希望大家這樣可以瞭解一點kernel在幹麻,明天就開始跟大家介紹一些model!


上一篇
線性模型 - 動手做做看 Logistic Regression篇
下一篇
Kernel method - RBF / Nadaraya-Watson
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言